package com.qfmy.web.app.mapper.novel;

import com.qfmy.model.entity.novel.NovelComment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @author 清风明月
 * @Package com.qfmy.web.app.mapper.novel
 * @date 2025/9/12
 * @description 小说评论表
 */
@Mapper
public interface NovelCommentMapper {

    /**
     * 根据小说ID获取评论
     *
     * @param novelId
     * @param userId
     * @return
     */
    List<NovelComment> getCommentsByNovelId(Integer novelId, Long userId);

    /**
     * 添加评论
     *
     * @param novelComment
     * @return
     */
    int addComment(NovelComment novelComment);

    /**
     * 更新评论点赞数
     * @param commentId
     */
    void updateCommentLikeCount(Integer commentId);

    /**
     * 减少点赞数
     * @param commentId
     */
    void updateCommentLikeCountRec(Integer commentId);

    /**
     * 根据ID查询评论
     * @param commentId
     * @return
     */
    NovelComment selectById(Integer commentId);

    /**
     * 更新子评论数
     * @param parentCommentId
     */
    Integer updateReplyCount(Integer parentCommentId);

    /**
     * 根据ID查询评论
     * @param novelId
     * @param userId
     * @return
     */
    Integer selectCommentById(Integer novelId, Long userId);

    /**
     * 减少子评论数
     * @param id
     */
    @Update("update novel_comments set reply_count = reply_count - 1 where comment_id = #{id}")
    void updateReplyCountRec(Integer id);
}
